<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
  </head>
  <body>
    <div id="root">
      <h1>学生信息</h1>
      <button @click="student.age += 1">年龄+1岁</button><br />
      <button @click="setSex">添加性别属性，默认值：男</button><br />
      <button @click="addFriend('帅静', 19)">在列表首位添加一个朋友</button
      ><br />
      <button @click="student.friends[0].name='张三'">
        修改第一个朋友的名字为：张三</button
      ><br />
      <button @click="addHobby('打排球')">添加一个爱好</button><br />
      <button @click="updateHobby">修改第一个爱好为：开车</button><br />

      <hr />
      <h3>姓名：{{student.name}}</h3>
      <h3 v-if="student.sex">性别：{{student.sex}}</h3>
      <h3>年龄：{{student.age}}</h3>
      <h3>爱好：</h3>
      <ul>
        <li v-for="(h, index) in student.hobby" :key="index">{{h}}</li>
      </ul>
      <h3>朋友们：</h3>
      <ul>
        <li v-for="(f,index) in student.friends" :key="index">
          {{f.name}}--{{f.age}}
        </li>
      </ul>
    </div>
    <script>
      const vm = new Vue({
        el: "#root",
        data: {
          student: {
            name: "tom",
            age: 19,
            hobby: ["抽烟", "喝酒", "烫头"],
            friends: [
              { name: "jerry", age: 35 },
              { name: "cookie", age: 25 },
            ],
          },
        },
        methods: {
          setSex() {
            this.$set(this.student, "sex", "男");
          },
          addFriend(name, age) {
            this.student.friends.unshift({ name, age });
          },
          addHobby(name) {
            this.student.hobby.unshift(name);
          },
          updateHobby() {
            this.student.hobby.splice(0, 1, "开车");
          },
        },
      });
    </script>
  </body>
</html>
